/**
@brief 1001-Questions <br>Permet de créer les cartes de jeu
@author Gaudillat Flavien
@file jeu.h
@version 1.0
@date 2013/12/10
*/

#ifndef JEU_H
#define JEU_H
#include "CASE.h"
#include "CARTE.h"
#include "DE.h"
#include "PION.h"


/**
\struct Jeu
@brief Module du jeu
*/
typedef struct{
    DE *de;
    TABCASE ta;
    CASE *ca;
    PION *pi;
    JEUCARTES tabcarte;
    int nbjoueur;
    int avancement;
    int d;
    int respi;
    int resqu;
    int reponse;
} JEU;

/**
@brief Initialisation du jeu
@param [in,out] je
@return none
*/
void jeInit_Jeu(JEU* je);

/**
@brief permet de récupérer la valeur des dés
@param [in,out] je
@return none
*/
void jeRecup_Des(JEU* je);

/**
@brief permet le changement de position du pion 1
@param [in,out] je
@return none
*/
void jeDeplacement_Pion1(JEU* je);

/**
@brief permet le changement de position du pion 2
@param [in,out] je
@return none
*/
void jeDeplacement_Pion2(JEU* je);

/**
@brief permet le changement de position du pion 3
@param [in,out] je
@return none
*/
void jeDeplacement_Pion3(JEU* je);

/**
@brief permet le changement de position du pion 4
@param [in,out] je
@return none
*/
void jeDeplacement_Pion4(JEU* je);

/**
@brief permet de demander au joueur si la reponse est juste
@param [in,out] je
@return none
*/
void jeReponse_question(JEU* je);

/**
@brief Permet de mettre à jour les scores des joueurs
@param [in,out] pi
@return none
*/
void jeActualise_Note(JEU* je);

/**
@brief tirage d'une carte et execution du jeu
@param [in,out] car
@return none
*/
void jeTirage_Carte(JEU* je);

/**
@brief Libere l'espace alloué pour la struct JEU
@param [in,out] je
@return none
*/
void jeLibere_Jeu(JEU* je);

#endif
